Skip to content

Conversation

emo-eth
Copy link
Contributor

@emo-eth emo-eth commented Oct 6, 2025

Summary

Updates to #10193 - made it a separate pr into master because I have merged a lot of changes from master.

Updates

Improvements:

  • Merge master; use latest solar v0.1.8
  • Full mutation de/serialization for caching
  • Cache mutants/results per-build-id and per-file
  • Tries to identify which Spans already have surviving mutants and skips running tests on Mutants of duplicate or sub-Spans

Things to check/explicitly test

  • Updates to src invalidates both mutant and results cache
  • Updates to test suite invalidates only results cache

Proposed "v0" todos:

  • At least parity with high-level gambit mutators
    • Basic Yul/inline-assembly mutators
  • Mutate in a tmp dir, not src
  • Use type information (possibly as part of hir) for fewer invalid mutations
  • More informative summaries
    • Report type of mutation being run
    • Breakdown of mutation counts by type
  • Report diffs of surviving mutants, similar to Gambit
    • ability to save mutation report to a file, e.g., .mutations-snapshot
  • Add ability to generate + profile mutants independently from running test suite
  • Cache per-file incremental results so mutation tests may be interrupted + resumed if build-id/hash stays the same (currently per-contract)
  • Automatically delete old mutant caches if build-id/hash changes
  • Assess new unit test framework
  • Complete integration tests

Proposed "v1" todos:

  • lcov support for coverage gutters
  • true multithreaded - probably using stdin to solc
  • gzip mutants + results?
  • Explore ordering of mutators and proposed mutants to increase likelihood of skipping redundant mutations
    • This is probably complicated by mutli-threading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

4 participants